
// 分析：
//   参数太多，顺序记不住
//   携带参数的写法不好发现错误


// type 请求的方式
// path  路径
// data  表示前端携带的数据
// dataType 后端返回的数据类型
// cb  数据请求成功以后要做的事情
const ajax = (type , path , data , dataType , cb) => {

    const xhr = new XMLHttpRequest();

    if(type.toLowerCase() === 'get') {
        xhr.open(type , path + '?' + data, true);
        xhr.send();
    } else {
        xhr.open(type , path, true);
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
        xhr.send(data);
    }

   
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
            let res = xhr.responseText;
            // 后端给前端返回的数据类型
            if(dataType.toLowerCase() === 'json') {
                res = JSON.parse(res) ;
            }
            // 数据请求成功以后
            cb && cb(res) ;
        }
    }

}